package com.base.string;

/**
 * TODO(686. 重复叠加字符串匹配)
 * 给定两个字符串a 和 b，寻找重复叠加字符串 a 的最小次数，使得字符串 b 成为叠加后的字符串 a 的子串，如果不存在则返回 -1。
 *
 * 注意：字符串 "abc"重复叠加 0 次是 ""，重复叠加 1 次是"abc"，重复叠加 2 次是"abcabc"。
 *
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode-cn.com/problems/repeated-string-match
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 *
 * @author leon
 * @date 2021年12月22日 10:59
 */
public class RepeatedStringMatch {
    /**
     * 暴力匹配法
     * @param a
     * @param b
     * @return
     */
    public int repeatedStringMatch(String a, String b) {
        StringBuilder aBuilder = new StringBuilder();
        int ans = 0;
        while (aBuilder.length()-b.length()<2*a.length()){
            aBuilder.append(a);
            ans++;
            if(aBuilder.length()>=b.length()){
                String ss = aBuilder.toString();
                int i = 0;

                for (; i <=ss.length()-b.length() ; i++) {
                    if(b.equals(ss.substring(i,i+b.length()))){
                        return ans;
                    }
                }
            }

        }
        return -1;
    }

    public static void main(String[] args) {
        System.out.println(new RepeatedStringMatch().repeatedStringMatch("abc","cabcabca"));
    }
}
